/**
 * 
 */
package com.gragra.sampling.nonproj.structures.nonprojective;
import java.util.BitSet;
import com.gragra.sampling.PopulationProbabilityAssigner;
import com.gragra.sampling.ThreadedUniformAccess;
import com.gragra.sampling.binary.ConvertSample;
import com.gragra.sampling.nonproj.structures.nonprojective.singleroot.GibbsGibbsSingleRootNonProjDepdTree;
import com.gragra.sampling.sequentialStructure.WordAndTagHolder;
/**
 * 
 * @author Christoph Teichmann
 * 22.04.2014
 */
public class GibbsNonprojective extends GibbsGibbsSingleRootNonProjDepdTree
{
	/**
	 * 
	 * @param wth
	 * @param threads
	 * @param cs
	 */
	public GibbsNonprojective(WordAndTagHolder wth, int threads,
			ConvertSample cs)
	{super(wth, threads, cs);}
	/* (non-Javadoc)
	 * @see com.gragra.sampling.nonproj.structures.nonprojective.singleroot.GibbsGibbsSingleRootNonProjDepdTree#resampleRoot(com.gragra.sampling.PopulationProbabilityAssigner, double, int, com.gragra.sampling.ThreadedUniformAccess)
	 */
	@Override
	protected void resampleRoot(PopulationProbabilityAssigner pa,
			double annealing, int thread, ThreadedUniformAccess tua)
	{}
	/* (non-Javadoc)
	 * @see com.gragra.sampling.nonproj.structures.nonprojective.singleroot.SingleRootNonProjDepdTree#makeAllHeadCandidates(int, int, com.gragra.sampling.PopulationProbabilityAssigner)
	 */
	@Override
	protected BitSet makeAllHeadCandidates(int pos, int thread,
			PopulationProbabilityAssigner npa)
	{
		BitSet ret = super.makeAllHeadCandidates(pos, thread, npa);
		ret.set(this.getRootPosition());
		return ret;
	}
	/* (non-Javadoc)
	 * @see com.gragra.sampling.nonproj.structures.nonprojective.singleroot.SingleRootNonProjDepdTree#skip(int, com.gragra.sampling.PopulationProbabilityAssigner, int)
	 */
	@Override
	protected boolean skip(int pos, PopulationProbabilityAssigner pa, int thread)
	{return false;}
}